// Decompiled by GOOSIN CO,LTD Copyright 2010 Pavel Kouznetsov.
// home page: http://www.Goosin.net
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   register_draft_ok.java

package stock.apply_pay;

import include.nseer_cookie.*;
import include.nseer_db.nseer_db_backup1;
import java.io.IOException;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import javax.servlet.jsp.JspFactory;
import validata.ValidataNumber;
import validata.ValidataRecord;

public class register_draft_ok extends HttpServlet
{

	public register_draft_ok()
	{
	}

	public synchronized void service(HttpServletRequest request, HttpServletResponse response)
		throws IOException, ServletException
	{
		HttpSession dbSession = request.getSession();
		JspFactory _jspxFactory = JspFactory.getDefaultFactory();
		javax.servlet.jsp.PageContext pageContext = _jspxFactory.getPageContext(this, request, response, "", true, 8192, true);
		javax.servlet.ServletContext dbApplication = dbSession.getServletContext();
		ValidataRecord vr = new ValidataRecord();
		HttpSession session = request.getSession();
		nseer_db_backup1 stock_db = new nseer_db_backup1(dbApplication);
		ValidataNumber validata = new ValidataNumber();
		counter count = new counter(dbApplication);
		try
		{
			String time = "";
			Date now = new Date();
			SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
			time = formatter.format(now);
			if (stock_db.conn((String)dbSession.getAttribute("unit_db_name")))
			{
				String product_amount = request.getParameter("product_amount");
				int num = Integer.parseInt(product_amount);
				int p = 0;
				for (int i = 1; i < num; i++)
				{
					String tem_amount = (new StringBuilder("amount")).append(i).toString();
					String amount = request.getParameter(tem_amount);
					if (!validata.validata(amount))
						p++;
				}

				if (p == 0)
				{
					String pay_ID = request.getParameter("pay_ID");
					String payer_name = request.getParameter("payer_name");
					String payer_ID = request.getParameter("payer_ID");
					pay_ID.equals("");
					String stock_pay_ID = NseerId.getId("stock/pay", (String)dbSession.getAttribute("unit_db_name"));
					String gather_ID = NseerId.getId("stock/gather", (String)dbSession.getAttribute("unit_db_name"));
					String reason = request.getParameter("reason");
					String not_return_tag = request.getParameter("not_return_tag");
					String register = request.getParameter("register");
					String register_time = request.getParameter("register_time");
					String demand_return_time = request.getParameter("demand_return_time");
					String bodyb = new String(request.getParameter("remark").getBytes("UTF-8"), "UTF-8");
					String remark = exchange.toHtml(bodyb);
					String new_apply = request.getParameter("new_apply");
					try
					{
						pay_ID = NseerId.getId(getClass().getResource("").toString(), (String)dbSession.getAttribute("unit_db_name"));
						String sql3 = (new StringBuilder("delete from stock_apply_pay where pay_ID='")).append(pay_ID).append("'").toString();
						stock_db.executeUpdate(sql3);
						String sql4 = (new StringBuilder("delete from stock_apply_pay_details where pay_ID='")).append(pay_ID).append("'").toString();
						stock_db.executeUpdate(sql4);
						String sql = (new StringBuilder("insert into stock_apply_pay(pay_ID,payer_name,payer_ID,reason,register_time,demand_return_time,remark,register,check_tag,excel_tag,not_return_tag) values ('")).append(pay_ID).append("','").append(payer_name).append("','").append(payer_ID).append("','").append(reason).append("','").append(register_time).append("','").append(demand_return_time).append("','").append(remark).append("','").append(register).append("','5','2','").append(not_return_tag).append("')").toString();
						stock_db.executeUpdate(sql);
						double cost_price_sum = 0.0D;
						double demand_amount = 0.0D;
						for (int i = 1; i < num; i++)
						{
							String tem_product_name = (new StringBuilder("product_name")).append(i).toString();
							String tem_product_ID = (new StringBuilder("product_ID")).append(i).toString();
							String tem_product_describe = (new StringBuilder("product_describe")).append(i).toString();
							String tem_amount = (new StringBuilder("amount")).append(i).toString();
							String tem_cost_price = (new StringBuilder("cost_price")).append(i).toString();
							String tem_amount_unit = (new StringBuilder("amount_unit")).append(i).toString();
							String product_name = request.getParameter(tem_product_name);
							String product_ID = request.getParameter(tem_product_ID);
							String product_describe = request.getParameter(tem_product_describe);
							String amount = request.getParameter(tem_amount);
							String amount_unit = request.getParameter(tem_amount_unit);
							String cost_price2 = request.getParameter(tem_cost_price);
							StringTokenizer tokenTO3 = new StringTokenizer(cost_price2, ",");
							String cost_price;
							String cost_price1;
							for (cost_price = ""; tokenTO3.hasMoreTokens(); cost_price = (new StringBuilder(String.valueOf(cost_price))).append(cost_price1).toString())
								cost_price1 = tokenTO3.nextToken();

							if (!amount.equals("") && Double.parseDouble(amount) != 0.0D)
							{
								double subtotal = Double.parseDouble(cost_price) * Double.parseDouble(amount);
								cost_price_sum += subtotal;
								demand_amount += Double.parseDouble(amount);
								String sql1 = (new StringBuilder("insert into stock_apply_pay_details(pay_ID,details_number,product_ID,product_name,product_describe,amount,amount_unit,cost_price,subtotal) values ('")).append(pay_ID).append("','").append(i).append("','").append(product_ID).append("','").append(product_name).append("','").append(product_describe).append("','").append(amount).append("','").append(amount_unit).append("','").append(cost_price).append("','").append(subtotal).append("')").toString();
								stock_db.executeUpdate(sql1);
								String sql2 = (new StringBuilder("insert into stock_pay_details(pay_ID,details_number,product_ID,product_name,cost_price,subtotal,amount,unpay_amount) values('")).append(stock_pay_ID).append("','").append(i).append("','").append(product_ID).append("','").append(product_name).append("','").append(cost_price).append("','").append(subtotal).append("','").append(amount).append("','").append(amount).append("')").toString();
								stock_db.executeUpdate(sql2);
								if (not_return_tag.equals("0"))
								{
									sql3 = (new StringBuilder("insert into stock_gather_details(gather_ID,details_number,product_ID,product_name,cost_price,subtotal,amount,ungather_amount) values('")).append(gather_ID).append("','").append(i).append("','").append(product_ID).append("','").append(product_name).append("','").append(cost_price).append("','").append(subtotal).append("','").append(amount).append("','").append(amount).append("')").toString();
									stock_db.executeUpdate(sql3);
								}
							}
						}

						String nseer_sql = (new StringBuilder("update stock_apply_pay set cost_price_sum='")).append(cost_price_sum).append("',demand_amount='").append(demand_amount).append("' where pay_ID='").append(pay_ID).append("'").toString();
						stock_db.executeUpdate(nseer_sql);
						if (!vr.validata((String)dbSession.getAttribute("unit_db_name"), "stock_pay", "reasonexact", pay_ID))
						{
							sql4 = (new StringBuilder("insert into stock_pay(pay_ID,reason,reasonexact,reasonexact_details,demand_amount,cost_price_sum,register,register_time) values('")).append(stock_pay_ID).append("','").append(reason).append("','").append(pay_ID).append("','").append(payer_name).append("','").append(demand_amount).append("','").append(cost_price_sum).append("','").append(register).append("','").append(register_time).append("')").toString();
							stock_db.executeUpdate(sql4);
						}
						if (not_return_tag.equals("0") && !vr.validata((String)dbSession.getAttribute("unit_db_name"), "stock_gather", "reasonexact", pay_ID))
						{
							String sql5 = (new StringBuilder("insert into stock_gather(gather_ID,reason,reasonexact,reasonexact_details,demand_amount,cost_price_sum,register,register_time) values('")).append(gather_ID).append("','").append(reason).append("','").append(pay_ID).append("','").append(payer_name).append("','").append(demand_amount).append("','").append(cost_price_sum).append("','").append(register).append("','").append(register_time).append("')").toString();
							stock_db.executeUpdate(sql5);
						}
					}
					catch (Exception ex)
					{
						ex.printStackTrace();
					}
					response.sendRedirect("stock/apply_pay/register_draft_ok.jsp?finished_tag=0");
				} else
				{
					response.sendRedirect("stock/apply_pay/register_draft_ok.jsp?finished_tag=1");
				}
				stock_db.commit();
				stock_db.close();
			} else
			{
				response.sendRedirect("error_conn.htm");
			}
		}
		catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}
}
